package syn;

public class concurrenceDemo implements Runnable
{
    private int ticketNum = 10;

    @Override
    public void run()
    {
        while (true)
        {
            if (ticketNum <= 0)
            {
                break;
            }
            try
            {
                Thread.sleep(200);
            } catch (InterruptedException e)
            {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "拿到了第" + ticketNum-- + "票");
        }
    }

    public static void main(String[] args)
    {
        concurrenceDemo ticket =new concurrenceDemo();
        //多个线程操作同一个资源的情况下，线程不安全，数据紊乱
        new Thread(ticket,"小明").start();
        new Thread(ticket,"老师").start();
        new Thread(ticket,"黄牛").start();
    }
}
        /*output:
        黄牛拿到了第9票
        小明拿到了第10票
        小明拿到了第6票
        老师拿到了第8票
        老师拿到了第4票
        老师拿到了第3票
        老师拿到了第2票
        老师拿到了第1票
        小明拿到了第5票
        黄牛拿到了第7票
        进程已结束,退出代码0
         */